package fiuba.algo3.vista;

import java.awt.Button;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import fiuba.algo3.dificultad.*;
import fiuba.algo3.juego.JuegoGPS;

public class VentanaEleccionDificultad extends JFrame implements ActionListener {

	private JFrame miFrame;
	private JuegoGPS miJuego;
	private Button base;
	private Button facil;
	private Button moderado;
	private Button dificil;
	private Button volver;

	VentanaEleccionDificultad(JuegoGPS unJuego, JFrame frameTemp) {

		this.miFrame = frameTemp;
		this.miJuego = unJuego;
		JPanel contentPane = new JPanel();
		frameTemp.setContentPane(contentPane);
		contentPane.setLayout(null);

		base = new Button("Base (sin obstaculos o sorpresas)");
		facil = new Button("Facil");
		moderado = new Button("Moderado");
		dificil = new Button("Dificil");
		volver = new Button("Volver al inicio");

		contentPane.add(base);
		contentPane.add(facil);
		contentPane.add(moderado);
		contentPane.add(dificil);
		contentPane.add(volver);

		base.setBounds(250, 100, 300, 100);
		facil.setBounds(300, 200, 200, 100);
		moderado.setBounds(300, 300, 200, 100);
		dificil.setBounds(300, 400, 200, 100);
		volver.setBounds(700, 500, 150, 50);

		base.addActionListener(this);
		facil.addActionListener(this);
		moderado.addActionListener(this);
		dificil.addActionListener(this);
		volver.addActionListener(this);

		JLabel opcion = new JLabel("Elija dificultad:");
		opcion.setBounds(350, 50, 100, 30);
		contentPane.add(opcion);

		frameTemp.paintComponents(frameTemp.getGraphics());
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == facil) {
			facil.setBackground(Color.GRAY);
			moderado.setBackground(Color.WHITE);
			dificil.setBackground(Color.WHITE);
			miJuego.nuevaPartidaConDificultad(new DificultadBaja());
			new VentanaEleccionVehiculos(miJuego, miFrame);
		}

		else if (e.getSource() == moderado) {
			facil.setBackground(Color.WHITE);
			moderado.setBackground(Color.GRAY);
			dificil.setBackground(Color.WHITE);
			miJuego.nuevaPartidaConDificultad(new DificultadMedia());
			new VentanaEleccionVehiculos(miJuego, miFrame);
		}

		else if (e.getSource() == dificil) {
			moderado.setBackground(Color.WHITE);
			facil.setBackground(Color.WHITE);
			dificil.setBackground(Color.GRAY);
			miJuego.nuevaPartidaConDificultad(new DificultadAlta());
			new VentanaEleccionVehiculos(miJuego, miFrame);
		}

		else if (e.getSource() == base) {
			miJuego.nuevaPartidaConDificultad(new DificultadBase());
			new VentanaEleccionVehiculos(miJuego, miFrame);
		}

		else if (e.getSource() == volver) {
			new VentanaMenuDelJuego(miJuego, miFrame);
		}
	}

}
